<?php
/**
 * Application level Controller
 *
 * This file is application-wide controller file. You can put all
 * application-wide controller-related methods here.
 *
 * PHP 5
 *
 * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
 * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
 *
 * Licensed under The MIT License
 * For full copyright and license information, please see the LICENSE.txt
 * Redistributions of files must retain the above copyright notice.
 *
 * @copyright     Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
 * @link          http://cakephp.org CakePHP(tm) Project
 * @package       app.Controller
 * @since         CakePHP(tm) v 0.2.9
 * @license       http://www.opensource.org/licenses/mit-license.php MIT License
 */
App::uses('Controller', 'Controller');

/**
 * Application Controller
 *
 * Add your application-wide methods in the class below, your controllers
 * will inherit them.
 *
 * @package		app.Controller
 * @link		http://book.cakephp.org/2.0/en/controllers.html#the-app-controller
 */
class AppController extends Controller {

	public $components = array(
        'Session',
        'Auth' => array(
            'loginRedirect' => array('controller' => 'users', 'action' => 'iniciando'),
            'logoutRedirect' => array('controller' => 'users', 'action' => 'login')
        )
    );

    public function beforeFilter() {
        $this->Auth->allow('login');
    }


    /**
     * SaveImg : Metodo para salvar as imagens no servidor
     * @param File $File Arquivo carregado no formulario.
     * @param String $pasta Pasta de localização para a imagem.
     * @author Erick Haendel <erickhaendel@gmail.com>
     * @return String Novo nome da imagem.
     */
    public function SaveImg($File,$pasta){
        $dir =  'img/'.$pasta.'/';
        if ('' != $File['tmp_name']){
            //Pegar a extasão do arquivo.
            $tipo =  explode('/',$File['type']);
            //Criar novo nome para a imagem.
            $File['name'] = $_SERVER['REQUEST_TIME'].'.'.$tipo[1];
            
            if($tipo[0] == 'image'){
                if(is_uploaded_file($File['tmp_name']) &&
                        move_uploaded_file($File['tmp_name'], $dir.$File['name'])){
                    return $File['name'];
                }
            }
        }
        else {
            return false;
        }
    }

    /**
     * Refreshes the Auth session
     * @param string $field
     * @param string $value
     * @return void 
     */
    public function _refreshAuth($field = '', $value = '') {
        if (!empty($field) && !empty($value)) { 
            $this->Session->write($this->Auth->sessionKey .'.'. $field, $value);
        } else {
            //print_r($this->User->findById($this->Auth->user('id'))['User']);
            $this->Auth->login($this->User->findById($this->Auth->user('id'))['User']);
        }
    }

    public function StrToUrl($string, $slug = '-') {
        $string = iconv("UTF-8", "ASCII//TRANSLIT", $string);
        $string = strtolower($string);
        if ($slug) {
            $string = preg_replace('/[^a-z0-9]/i', $slug, $string);
            $string = preg_replace('/' . $slug . '{2,}/i', $slug, $string);
            $string = trim($string, $slug);
        }
        return $string;
 
    }

}
